/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.pieshare.service.pieception; import java.rmi.AccessException; import java.rmi.NotBoundException; import java.rmi.Remote; import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.util.EventListener; import org.pieshare.service.event.IEventBaseService; import org.pieshare.service.event.EventCallback; import org.pieshare.service.core.ShutdownEvent; import org.pieshare.service.core.IPieService; /** * * @author vauvenal5 */ public class CmdServerService implements ICommandService, ICmdServerService { private static final org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(CmdServerService.class); private Registry registry; private IPieService pieService; @Override @EventCallback(eventClass = ShutdownEvent.class) public void exit() { try { this.registry.unbind(this.pieService.getPieceptionBindingName()); } catch (RemoteException ex) { logger.debug("Pieception failed! Err: " + ex.getMessage()); } catch (NotBoundException ex) { logger.debug("Pieception failed! Err: " + ex.getMessage()); } //todo sv: implementen shutdown event chain like in dslab throw new UnsupportedOperationException("SVETI IS GREAT!"); //To change body of generated methods, choose Tools | Templates. } @Override public void run() { registerService();; } private void registerService() { try { this.registry = LocateRegistry.createRegistry(this.pieService.getPieceptionRegistryPort()); this.registry.rebind(this.pieService.getPieceptionBindingName(), this); } catch (RemoteException ex) { logger.debug("Pieception failed! Err: " + ex.getMessage()); } } public void setPieService(IPieService service) { this.pieService = service; } @Override public void login(String username, String password) { throw new UnsupportedOperationException("Not supported yet."); } }